Recordable macros for pacemaker follow-up

ABSTRACT

A device and method for programming an implantable pulse generator. In one embodiment, commands are entered designating implantable pulse generator programming variables into programmer memory. At least some of the commands are transformed into an executable macro. The macro is stored in the programmer memory. The macro is executed to transmit the programming variables to the implantable pulse generator.

FIELD OF THE INVENTION

This document relates to systems implantable in a patient to treatcardiac arrhythmia, and in particular, to a programming device andmethod for using software or firmware macro-functions (hereinaftermacros) to record a physician's programming preferences and proceduraltest order to partly automate follow-up procedures after a pacemaker,defibrillator, or any other device capable of diagnosing and treatingcardiac arrhythmia has been implanted in a patient.

BACKGROUND

External programmers are used to non-invasively change the performanceparameters of an implanted device such as a pacemaker or defibrillator.As the implantable devices become more sophisticated and are designedwith more programmable features, it is advantageous to reduce the timenecessary for physicians to change programming preferences for theimplanted devices. Current methods require the operator of a programmerfor an implanted device to re-enter a set of programmed parameters forthe implanted device at the start of a follow-up procedure. This set ofparameters may be defined by physician preferences or by settings neededto perform a test. The re-entry of programmed settings results in extratime needed to program the implanted device to overwrite defaultsettings or perform a set of tests. What is needed is a programmingdevice and method to automatically pre-load the set of parameters in theprogramming device to minimize the time necessary to reprogram thesettings of the implanted device.

SUMMARY OF THE INVENTION

This document discusses a device and method for programming animplantable pulse generator. The programming device for an implantablepulse generator comprises a programmer memory, data entry means to enterimplantable pulse generator programming variables into the programmermemory, a processor to transform the entry of programming variables intoan executable macro as the variables are entered and storing the macroin the programmer memory, and a communication module to transmit theprogramming variables to the pulse generator when the processor executesthe macro.

One embodiment of a method of programming an implantable pulse generatorcomprises entering commands designating implantable pulse generatorprogramming variables into programmer memory, transforming at least someof the commands into an executable macro, storing the macro in theprogrammer memory, and executing the macro to transmit the programmingvariables to the implantable pulse generator. Another embodiment of amethod of programming an implantable pulse generator comprises receivingdata identifying the implantable pulse generator by an externalprogramming device, loading a script file previously stored according tothe identifying data into memory of the programming device, executingthe script file to pre-load programming variables into the memory of aprogramming device, and selectively transmitting the programmingvariables via telemetry from the programming device to the implantablepulse generator for storage in memory of the implantable pulsegenerator.

This summary is intended to provide an overview of the subject matter ofthe present patent application. It is not intended to provide anexclusive or exhaustive explanation of the invention. The detaileddescription is included to provide further information about the subjectmatter of the present patent application.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, wherein like numerals refer to like componentsthroughout the several views,

FIG. 1 shows one embodiment of a system to treat cardiac arrhythmia andan environment in which it is used.

FIG. 2 is a block diagram of the components of an external programmingdevice for an implantable device.

FIG. 3 is a flow chart showing one embodiment of a method of programmingan implantable device using macros.

FIG. 4 is a flow chart showing one embodiment of a method of programmingan implantable device using a previously stored script file.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings which form a part hereof, and in which is shown byway of illustration specific embodiments in which the invention may bepracticed. It is to be understood that other embodiments may be utilizedand structural changes may be made without departing from the scope ofthe present invention.

FIG. 1 shows one embodiment of portions of a system 100 to treat cardiacarrhythmia. System 100 includes an implantable pulse generator (PG) 105that is connected by a first cardiac lead 110 and a second cardiac lead115, or one or more additional leads, to a heart 120 of a patient 125.Implantable PG 105 can take the form of a pacemaker, a defibrillator, ora cardioverter/defibrillator that includes pacing capability. System 100also includes an external programming device, or programmer, 140 thatprovides for wireless communication with the implantable PG 105 usingtelemetry antenna 145. The external programmer transmits the programmingvariables to the implantable PG. The programming variables determinewhat therapy will be used to treat heart arrhythmias. The externalprogrammer also receives information such as device serial numbers fromthe implantable PG 105.

FIG. 2 is a block diagram of a programmer 140 for the implanted device.An operator enters programming variables by data entry means 220 into amemory 240 local to the external programmer 140 for transmitting to animplantable PG 105. The programming variables are shown to the operatorby programmer display 260. In one embodiment, data entry means 220 is akeypad. In another embodiment, data entry means 220 is a computer mouse.In a further embodiment, the data entry means 220 is a drop-down menuand a computer mouse or a touch-screen display. In a further embodiment,data entry means 220 is a virtual keyboard which may be part of theprogrammer display 260. Processor 210 transforms the data entries of anoperator into general memory 230 as a software or firmware macro. In oneembodiment, memory 230 is a local hard drive for the programmer. Inanother embodiment, memory 230 is a diskette inserted into a localfloppy disk drive. In an embodiment concerning the software of theprogrammer, the processor runs a software program such as VisualBasic™(for a MS Windows based programmer) or QNX™ programming script (for QNXbased programmers), or a program residing in firmware to record themacro.

The programmer then transmits the programming variables to theimplantable PG 105 using communication module 250 and telemetry antenna145. In one embodiment, the set of programming variables to betransmitted to the implantable PG 105 is defined by the device featureset of the type of implantable device. In another embodiment, the set ofprogramming variables is defined by the cardiac disorder that afflictsthe patient. In a further embodiment, the set of programming variablesto be transmitted to the implantable PG 105 is checked to preventoverwriting a protected area of memory in the implanted device. In yet afurther embodiment, the set of programming variables re-entered fordownloading to the implantable PG 105 is checked to determine if thevariable is appropriate for the implanted system. For example, theoperator may try to download a pacing parameter for a pacing vector thatis not implemented in the device. In subsequent programming sessions,processor 210 plays back the macro to either directly transmit thevariables to the PG 105, or to pre-load the programming variables intolocal programmer memory 240 before selectively transmitting thevariables to the PG 105.

FIG. 3 is a flow chart showing one embodiment of a method 300 ofprogramming an implanted device using macros. At 310 commands areentered designating implantable programmer variables into programmermemory. In one example of the embodiment, commands are entered by aprogrammer operator using a keypad. In another embodiment, a programmeroperator enters programming variables into fields of the display 260. At320 at least some of the commands are transformed into an executablemacro. In one embodiment, commands are transformed by processor 210recording the keystrokes of a programmer operator when the operatorenters commands using a keypad. In another embodiment, the processorrecords a series of data values entered into fields of display 260. At330, the executable macro is stored into programmer memory 230. At 340,the macro is executed to transmit the programming variables to theimplantable PG 105.

In one embodiment, the macro pre-loads physician setting preferences tooverwrite the default factory settings; especially in the area ofelectrophysiological testing, anti-tachycardia pacing (ATP), and otherprogrammed stimulation.

In another embodiment, data identifying the implantable PG 105, such asthe device serial number for example, is uploaded from the implantablePG 105, and the macro pre-loads variables required to conductpatient-testing of the device. In this manner, an entire set of tests ispre-programmed by replaying macros. The test results and programmedparameters are extracted from the external programmer 140 and insertedinto a post-session follow-up communication. One embodiment of thecommunication is a predefined physician follow-up letter using, forexample, additional macros written in Visual Basic™ for use in a wordprocessing program such as MS Word™. Often a transfer of informationbetween two different operating systems (OS) such as QNX™ (OS for theprogrammer) and MS Windows™ (OS for the computer generating physicianfollow-up letters) is performed through creation of a diskette withappropriate ANSI values to be imported into the word processing programsuch as MS Word™ or Word Perfect™.

FIG. 4 is a flow chart showing one embodiment of a method 400 ofprogramming an implanted device using a previously stored script file. Ascript file is a text file written in a software language such as VisualBasic™ containing a sequence of executable commands. At step 410 theexternal programming device 140 receives data identifying theimplantable PG 105. At step 420, the programming device 140 then loads ascript file previously stored according to the identifying data intomemory 230 of the programming device 140. In one embodiment, theprogramming device 140 displays a menu of script files associated withthe implantable PG 105. In one example of associating the menus with theimplantable PG 105, the menu displays the script files available for themodel of PG 105. In another example, the menu displays the script filesavailable for the cardiac disorder treated with the PG 105. In a furtherexample, the menu displays the script files available for differentcardiac disorders that require specific device programming of the PG105.

In another embodiment, the script file menus are associated with thedevice programming preferences of a physician. In one example, thescript file menus are associated with a physician's preferences for themodel of the PG 105. In another example, the script file menus areassociated with a physician's preferences for a set of tests to executebased on the cardiac disorder. At step 430, the script file chosen bythe operator from a menu is executed to pre-load programming variablesinto local memory 240 of programming device 140. At step 440, theprogramming variables are selectively transmitted via telemetry from theprogramming device 140 to the implantable pulse generator for storage inmemory of the implantable PG 105. In one embodiment of selectivelytransmitting the programming variables, the script file either transmitsthe variables via telemetry to the PG 105 by the operator withoutmodification, or the variables are transmitted after review and minorchanges are made by the operator.

Although specific examples have been illustrated and described herein,it will be appreciated by those of ordinary skill in the art that anyother embodiment that exists that is calculated to achieve the samepurpose may be substituted for the specific example shown. Thisapplication is intended to cover any adaptations or variations of thepresent invention. Therefore, it is intended that this invention belimited only by the claims and their equivalents.

1. A programmer for programming an implantable pulse generatorcomprising: a programmer memory; data entry means to enter implantablepulse generator programming variables into the programmer memory; aprocessor to transform the entry of programming variables into anexecutable macro as the variables are entered, to store the macro in theprogrammer memory, and to automatically re-enter the programmingvariables during a subsequent programming session by executing themacro; and a communication module to transmit the programming variablesto the pulse generator when the processor executes the macro.
 2. Theprogrammer of claim 1, wherein a display shows the programmingvariables.
 3. The programmer of claim 1, wherein the communicationmodule is configured to communicate data identifying the pulse generatorto the programmer and wherein the processor also includes a module toparticularize the macro in accordance with characteristics of the pulsegenerator.
 4. The programmer of claim 3, wherein characteristics of thepulse generator are defined by programmable features of the pulsegenerator.
 5. The programmer of claim 3, wherein the processor furtherincludes a module for particularizing a macro to characteristics of acardiac disorder.
 6. The programmer of claim 1, wherein the processorincludes a module to particularize a macro to perform an in vivo test.7. The programmer of claim 6, wherein the communication module isadapted to receive measured data from the pulse generator indicative ofthe response of the patient to the in vivo test and to store thatmeasured data in the programmer memory.
 8. The programmer of claim 7,wherein a further communication module is provided to transmit theprogramming variables and the measured data indicative of the patient'sresponse to a reporting module for insertion into a report to presenttest results.
 9. The programmer of claim 1, wherein the processorincludes module means for checking if the programming variables to betransmitted to the pulse generator are protected from being overwritten.10. A method of programming an implantable pulse generator, the methodcomprising: entering commands designating implantable pulse generatorprogramming variables into programmer memory in a first programmingsession; transforming at least some of the commands into an executablemacro; storing the macro in the programmer memory; re-entering theprogramming variables into programmer memory in a subsequent programmingsession by executing the macro; and transmitting the programmingvariables to the implantable pulse generator.
 11. The method of claim10, wherein transforming at least some of the commands into anexecutable macro includes storing generally consecutive keystrokeentries made by a programmer operator on a keypad.
 12. The method ofclaim 10, wherein transforming at least some of the commands into anexecutable macro includes storing generally consecutive entries made bya programmer operator with a computer mouse.
 13. The method of claim 10,wherein executing the macro to transmit the programming variablesincludes selectively downloading the programming variables from theprogrammer to the implantable pulse generator via telemetry for storagein memory of the implantable pulse generator.
 14. The method of claim10, wherein entering the programming variables into programmer memoryincludes displaying the programming variables.
 15. The method of claim14, wherein transforming at least some of the commands into anexecutable macro includes storing a series of data values entered intodisplay fields by the programmer operator.
 16. The method of claim 14,wherein executing the macro includes: pre-loading the programmingvariables into the programmer memory; selectively altering theprogramming variables in the display fields and programmer memory; andtransmitting the programming variables to the implanted pulse generator.17. The method of claim 10, wherein transforming at least some of thecommands into an executable macro includes creating a macro for eachimplantable pulse generator model programmed, and wherein executing themacro includes executing the macro when the programmer identifies theimplantable pulse generator model in a subsequent programming session.18. The method of claim 10, wherein transforming at least some of thecommands into an executable macro includes transforming at least some ofthe procedural steps for entering programming variables for treating acardiac disorder, and wherein executing the macro includes executing thestored macro when the programmer identifies a patient is afflicted withthat cardiac disorder.
 19. The method of claim 10, wherein transformingat least some of the commands into an executable macro includestransforming at least some of the procedural steps for enteringprogramming variables of a testing session of the implantable pulsegenerator.
 20. The method of claim 19, wherein transforming at leastsome of the commands into an executable macro includes transforming atleast some of the procedural steps for entering a range of test valuesfor a testing session.
 21. The method of claim 19, wherein executing themacro includes executing a plurality of macros comprising an order oftests to be performed.
 22. The method of claim 21, wherein the methodfurther includes exporting the order of the tests performed and testresults from the programmer for insertion into a post-session follow-upcommunication presenting the test results.
 23. The method of claim 22,wherein exporting the order of the tests and the test results includestransferring the information between devices implementing differentoperating systems.
 24. The method of claim 22, wherein the post-sessionfollow-up communication includes a letter containing a predefined textbody.
 25. A computer readable media including instructions forperforming the method of claim 10.